实验内容:(本实验均在WAVE6000下完成)
1.安装wave6000软件,并学习使用方法
(注意:文件/打开项目/asm51.prj,为51CPU模板,请在此项目中调试程序;
编译程序,F7单步执行,打开CPU窗口、所有数据窗口观察寄存器和RAM区)
2.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向外部RAM的输出缓冲区outbuf进行传送,一直进行到遇到回车符CR或整个字符串传送完毕。(其中,inbuf=20h,outbuf=40h,字符串内容请自己设定)将下面的代码补齐。
知识点:如何实现数据从一个区域 搬迁到 另一个区域,
以及判别 是否有回车符
用到 外部数据存储器 数据传送 指令:MOV A,@R0
MOVX @DPTR,A
INBUF EQU 20H
OUTBUF EQU 40H
ORG 0000H
LJMP START
ORG 0040H
START:
MOV R0,#INBUF
MOV DPTR,#OUTBUF
MOV R1,#10H
LOOP:
SUBB A,#0DH ;判断是否是回车符CR(回车符的ASCII码:#0DH)
JZ LOOP1
DJNZ R1,LOOP
LOOP1: RET
END
3.求8个数的平均值,这8个数以表格的形式存放在从table开始的单元中。(TABLE: DB 02H,03H,04H,5H,6H,7H,8H,9H,商和余数请放在AB寄存器)将下面的代码补齐。
知识点:涉及知识 如何查表,用到查表指令:MOVC A,@A+DPTR,除数指令:DIV AB
ORG 0000H
LJMP START
ORG 0040H
START:
MOV DPTR,#TABLE
MOV R1,#08H
MOV B,R1
MOV R0,#00H
LOOP: CLR A
MOVC
ADD A,R0
MOV
INC
DJNZ R1,LOOP
DIV AB
RET
TABLE:
DB 02H,03H,04H,5H,6H,7H,8H,9H
END
|